package com.dtx.abstractfactory.listfactory;

import com.dtx.abstractfactory.factory.Factory;
import com.dtx.abstractfactory.factory.Link;
import com.dtx.abstractfactory.factory.Page;
import com.dtx.abstractfactory.factory.Tray;

/**
 * 具体的工厂: ListFactory类
 * 之前我们学习了抽象类的代码,现在让我们将视角切换到具体类。首先,我们来看看listfactory包中的工厂————ListFactory类。
 * ListFactory类实现了Factory类的createLink方法,createTray方法以及createPage方法。当然,各个方法内部只是
 * 分别简单地new除了ListLink类的实例,ListTray类的实例以及ListPage类的实例(根据实际需求,这里可能需要用Prototype模式
 * 来进行clone。)
 */
public class ListFactory extends Factory {


    @Override
    public Link createLink(String caption, String url) {
        return new ListLink(caption,url);
    }

    @Override
    public Tray createTray(String caption) {

        return new ListTray(caption);
    }

    @Override
    public Page createPage(String title, String author) {
        return new ListPage(title,author);
    }
}
